package com.ztorn.fiscale.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ztorn.common.core.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 报关单商品明细对象 fiscale_customs_declaration_item
 *
 * @author ztorn
 * @date 2025-01-19
 */
public class FiscaleCustomsDeclarationItem
{
    private static final long serialVersionUID = 1L;

    /** 明细ID */
    private Long itemId;

    /** 报关单ID */
    @Excel(name = "报关单ID")
    private Long declarationId;

    /** 订单ID */
    @Excel(name = "订单ID")
    private Long orderId;

    /** 订单明细ID */
    @Excel(name = "订单明细ID")
    private Long orderItemId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 商品英文名称 */
    @Excel(name = "商品英文名称")
    private String productNameEn;

    /** HS编码 */
    @Excel(name = "HS编码")
    private String hsCode;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specification;

    /** 数量 */
    @Excel(name = "数量")
    private Long quantity;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal unitPrice;

    /** 总价 */
    @Excel(name = "总价")
    private BigDecimal totalPrice;

    /** 重量(KG) */
    @Excel(name = "重量", suffix = "KG")
    private BigDecimal weight;

    /** 原产国 */
    @Excel(name = "原产国")
    private String countryOfOrigin;

    /** 品牌 */
    @Excel(name = "品牌")
    private String brand;

    /** 型号 */
    @Excel(name = "型号")
    private String model;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    public void setItemId(Long itemId)
    {
        this.itemId = itemId;
    }

    public Long getItemId()
    {
        return itemId;
    }
    public void setDeclarationId(Long declarationId)
    {
        this.declarationId = declarationId;
    }

    public Long getDeclarationId()
    {
        return declarationId;
    }
    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId()
    {
        return orderId;
    }
    public void setOrderItemId(Long orderItemId)
    {
        this.orderItemId = orderItemId;
    }

    public Long getOrderItemId()
    {
        return orderItemId;
    }
    public void setProductName(String productName)
    {
        this.productName = productName;
    }

    public String getProductName()
    {
        return productName;
    }
    public void setProductNameEn(String productNameEn)
    {
        this.productNameEn = productNameEn;
    }

    public String getProductNameEn()
    {
        return productNameEn;
    }
    public void setHsCode(String hsCode)
    {
        this.hsCode = hsCode;
    }

    public String getHsCode()
    {
        return hsCode;
    }
    public void setSpecification(String specification)
    {
        this.specification = specification;
    }

    public String getSpecification()
    {
        return specification;
    }
    public void setQuantity(Long quantity)
    {
        this.quantity = quantity;
    }

    public Long getQuantity()
    {
        return quantity;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }
    public void setUnitPrice(BigDecimal unitPrice)
    {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getUnitPrice()
    {
        return unitPrice;
    }
    public void setTotalPrice(BigDecimal totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice()
    {
        return totalPrice;
    }
    public void setWeight(BigDecimal weight)
    {
        this.weight = weight;
    }

    public BigDecimal getWeight()
    {
        return weight;
    }
    public void setCountryOfOrigin(String countryOfOrigin)
    {
        this.countryOfOrigin = countryOfOrigin;
    }

    public String getCountryOfOrigin()
    {
        return countryOfOrigin;
    }
    public void setBrand(String brand)
    {
        this.brand = brand;
    }

    public String getBrand()
    {
        return brand;
    }
    public void setModel(String model)
    {
        this.model = model;
    }

    public String getModel()
    {
        return model;
    }
    public void setCreateTime(Date createTime)
    {
        this.createTime = createTime;
    }

    public Date getCreateTime()
    {
        return createTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("itemId", getItemId())
            .append("declarationId", getDeclarationId())
            .append("orderId", getOrderId())
            .append("orderItemId", getOrderItemId())
            .append("productName", getProductName())
            .append("productNameEn", getProductNameEn())
            .append("hsCode", getHsCode())
            .append("specification", getSpecification())
            .append("quantity", getQuantity())
            .append("unit", getUnit())
            .append("unitPrice", getUnitPrice())
            .append("totalPrice", getTotalPrice())
            .append("weight", getWeight())
            .append("countryOfOrigin", getCountryOfOrigin())
            .append("brand", getBrand())
            .append("model", getModel())
            .append("createTime", getCreateTime())
            .toString();
    }
}
